package com.xit.hitmouse.dao;

import android.content.Context;

import com.xit.hitmouse.utils.DateFormat;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author 厦工 友敏612
 * @Date 2023/11/24
 */

public class FileHelper {

    private static  final   String File_Name="login_verification.txt";

    /*
     * 这里定义的是一个文件保存的方法，写入到文件中，所以是输出流  保存用户名 和存储时间即可
     * */
    public static void save(Context mContext, String username)  {
        FileOutputStream output = null;
        try {
            output = mContext.openFileOutput(File_Name, Context.MODE_PRIVATE);
            output.write(username.getBytes());
            output.write(":".getBytes());
            output.write(DateFormat.dateToCustomize(new Date()).getBytes());
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(output!=null){
                try {
                    output.close();         //关闭输出流
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }

    }


    public  static String readFile(Context mContext){
        String userName="";
        FileInputStream fis= null;
        BufferedReader br=null;
        try {
            fis = mContext.openFileInput(File_Name);

            br=new BufferedReader(new InputStreamReader(fis));
            String len =null;
            if((len = br.readLine())!=null) {
//            while ((len = br.readLine())!=null) {  这里没必要用循环 只读一次
                String[] mes = len.split(":");
                Date saveTime = DateFormat.customizeToDate(mes[1]);
                String userName0 = mes[0];

                // 获取当前时间
                Date currentTime = new Date();

                // 计算当前时间和给定时间点之间的时间差（毫秒级）
                long timeDifference = currentTime.getTime() - saveTime.getTime();
                // 将时间差转换为天数
                long daysPassed = timeDifference / (1000 * 60 * 60 * 24);

                // 判断是否已经过去了三天
                if (daysPassed < 3) {
                    userName=userName0;
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(br!=null) {
                try {
                    br.close();
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return  userName;
    }

}

